package com.neuedu.corejava.ch7;

public class Outer {

	private int id = 11;
	private String name = "outer";

	public Outer(int id, String name) {
		super();
		this.id = id;
		this.name = name;
	}

	public void printOuter() {
		System.out.println(id + "in outer: " + name);
		//内部类可以直接在外部类中使用，用于完成特定功能
		Inner inner=new Inner();
		inner.printInner();
				
	}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	//内部类:在实际使用中经常被定义为私有的，只在外部类中使用，用于完成特定的功能
	public class Inner {
		private int id = 101;
		private String name = "inner";

		public void printInner() {
			// 在内部类中，可以直接使用外部类的属性和方法
			//在内部类中，如果有变量与外部类名称相同，优先使用内部类的变量
			int innerId = id;
			String innerName = name;
			System.out.println(innerId + "in inner: " + innerName);
			printOuter();
		}
	}

}
